package opf5.ui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JCheckBox;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;

import opf5.entities.ordenadoresJugadores.Criterio;
import opf5.entities.ordenadoresJugadores.CriterioHandicap;
import opf5.entities.ordenadoresJugadores.CriterioPromedioUltimoPartido;
import opf5.entities.ordenadoresJugadores.CriterioUltimosNPartidos;
import opf5.entities.ordenadoresJugadores.OrdenadorJugadores;
import opf5.entities.ordenadoresJugadores.OrdenamientoJugadoresMix;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;

public class VistaEleccionCriterios {

	private JFrame frame;
	private JTextField textField;
	private JCheckBox chckbxHandicap;
	private JCheckBox chckbxPromedioUltimoPartido;
	private JCheckBox chckbxPromedioDeUltimos;

	VistaAdministrarEquipos vistaAdministrarEquipos;
	
	/**
	 * @param vistaAdministrarEquipos 
	 * @wbp.parser.entryPoint
	 */
	public void initialize(VistaAdministrarEquipos vistaAdministrarEquipos) {
		this.vistaAdministrarEquipos = vistaAdministrarEquipos;
		
		frame = new JFrame();
		frame.setBounds(100, 100, 236, 189);
		frame.getContentPane().setLayout(null);
		
		chckbxHandicap = new JCheckBox("Handicap");
		chckbxHandicap.setBounds(6, 36, 97, 23);
		frame.getContentPane().add(chckbxHandicap);
		
		chckbxPromedioUltimoPartido = new JCheckBox("Promedio ultimo partido");
		chckbxPromedioUltimoPartido.setBounds(6, 62, 178, 23);
		frame.getContentPane().add(chckbxPromedioUltimoPartido);
		
		chckbxPromedioDeUltimos = new JCheckBox("Promedio de ultimos N partidos");
		chckbxPromedioDeUltimos.setBounds(6, 88, 178, 23);
		frame.getContentPane().add(chckbxPromedioDeUltimos);
		
		textField = new JTextField();
		textField.setBounds(187, 89, 24, 20);
		frame.getContentPane().add(textField);
		textField.setColumns(10);
		
		JButton btnAceptar = new JButton("Aceptar");
		btnAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				runGetOrdenamiento();
			}
		});
		btnAceptar.setBounds(122, 118, 89, 23);
		frame.getContentPane().add(btnAceptar);
		
		JLabel lblCriterio = new JLabel("Criterios");
		lblCriterio.setBounds(10, 11, 46, 14);
		frame.getContentPane().add(lblCriterio);
	
		final VistaEleccionCriterios window = this;
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	protected void runGetOrdenamiento() {
		List<Criterio> criterios = new ArrayList<Criterio>();
	
		if (this.chckbxHandicap.isSelected())
			criterios.add(new CriterioHandicap());
		
		if (this.chckbxPromedioDeUltimos.isSelected())
			criterios.add(new CriterioUltimosNPartidos(new Integer(this.textField.getText())));

		if (this.chckbxPromedioUltimoPartido.isSelected())
			criterios.add(new CriterioPromedioUltimoPartido());
	
		this.vistaAdministrarEquipos.setOrdenamiento(new OrdenamientoJugadoresMix(criterios));
		
		this.frame.setVisible(false);
	}
}
